/*
 * Copyright 2012 Daniel Kurka
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package com.googlecode.mgwt.ui.client.widget.touch;

import com.google.gwt.event.shared.HasHandlers;
import com.googlecode.mgwt.dom.client.event.touch.HasTouchHandlers;
import com.googlecode.mgwt.dom.client.recognizer.TapRecognizer;

public class GestureUtility {
	private TapRecognizer tapRecognizer;
	private final HasHandlers source;

	public GestureUtility(HasHandlers source) {
		this.source = source;

	}

	public void ensureTapRecognizer() {
		if (tapRecognizer != null)
			return;
		if (!(source instanceof HasTouchHandlers)) {
			throw new IllegalStateException("trying to add a touchhandler to a widget without touchsupport");
		}
		tapRecognizer = new TapRecognizer(source);
		((HasTouchHandlers) source).addTouchHandler(tapRecognizer);
	}
}
